package com.study.common.utils;

import sun.misc.BASE64Encoder;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SafetyUtils {
    /**
     * @Author 谭永超 [www.tanyongchao.tk]
     * @Date 2018/8/29 14:36
     * @Description md5 加密防止在后台直接现实密码导致用户的不安全
     */
    public static String pwdSafety(String password) throws NoSuchAlgorithmException, UnsupportedEncodingException {
        // 找到md5 加密方法
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        // 用BASE64Encoder防止存储的时候出现乱码
        BASE64Encoder base64Encoder = new BASE64Encoder();
        //getBytes将password转化为二进制字符集格式为utf-8
        String result = base64Encoder.encode(md5.digest(password.getBytes("UTF-8")));
        return result;
    }

    /**
     * @Author 谭永超 [www.tanyongchao.tk]
     * @Date 2018/8/29 15:37
     * @Description 密码效验判断是否可以进入系统
     */
    public static boolean testPassword(String inputPwd, String password) throws UnsupportedEncodingException, NoSuchAlgorithmException {
        //输入的密码进行md5加密
        inputPwd = pwdSafety(inputPwd);
        //判断加密过后的密码是否相等验证密码是否正确
        if (password.equals(inputPwd)) {
            return true;
        } else {
            return false;
        }
    }
}
